home *** CD-ROM | disk | FTP | other *** search
/ Softwarová Záchrana 3 / Softwarova-zachrana-3.bin / Xteq X-Setup / xqdcXSP-Setup-EN.exe / {app} / plugins / XQ Win2K DHCP Fixed IP.xpl < prev    next >
Text File  |  2004-04-28  |  6KB  |  209 lines

  1. "FILE"="Xteq Systems X-Setup Plugin 6.0"
  2. "TYPE"="8"
  3. "COUNT"="3"
  4. "UIPATH"="Network\DHCP"
  5. "NAME"="DHCP Plus Secondary IP Address"
  6. "VERSION"="1.12"
  7. "LANGUAGE"="VBScript"
  8. "OSVERSION"="0001011"
  9. "WARNING"="1"
  10. "TEXT 1"="Show GUID"
  11. "TEXT 2"="Add/Edit"
  12. "TEXT 3"="Remove"
  13. "DESCRIPTION 1"="These days, most networks assign IP Number by using a DHCP server. By default, Windows does only allow to either use a DHCP assigned IP address, or a static (user-configured) IP address - not both at the same time. In some conditions however, you might want to have one more address beside the DHCP assigned IP address. With this setting, you can do just that."
  14. "DESCRIPTION 2"="Simply click on the network connection where you would like to have an additional IP address and click on the "Add/Edit". Please note that this IP address will share the same settings (DNS Servers, WINS Servers etc.) as the DHCP assigned IP address. "
  15. "DESCRIPTION 3"="When you are done with this, simply start and stop (Enable/Disable) the changed network connection by using Start -> Control Panel -> Network Connections. Once this is done, the secondary IP address is active."
  16. "DESCRIPTION 4"="To remove the secondary IP address again, simply click on the Remove button."
  17. "DESCRIPTION 5"="The "Show GUID" can be used to retrieve the Interface GUID for the selected network connection."
  18. "DESCRIPTION 6"="Please note that this listing will show you only those network connections that have DHCP activated. All non-DHCP enabled network connections will not be listed here. "
  19. "AUTHOR"="Xteq Systems"
  20. "CONTACTURL"="http://www.xteq.com/"
  21. "COPYRIGHT"="Copyright ⌐ Xteq Systems - All Rights Reserved"
  22. "COMMENT 1"="Thanks to Pierre Szwarc <pierre@xteq.com> for the idea!"
  23. "COMMENT 2"="Found by Daniel Petri, http://www.petri.co.il/configure_tcp_ip_to_use_dhcp_and_a_static_ip_address_at_the_same_time.htm"
  24.  
  25.  
  26. iCount=0
  27.  
  28. sP1="HKLM\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\"
  29. sV_ConName="\Connection\Name"
  30.  
  31. sV_TCP="HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\"
  32. sV_DHCP="\EnableDHCP"
  33. sV_IP="\IPAddress"
  34. sV_Subnet="\SubnetMask"
  35.  
  36. Sub Plugin_Initialize 
  37.  Call InitListbox
  38. End Sub
  39.  
  40.  
  41. Sub Plugin_Apply(ElementIndex,ElementSubIndex)
  42.  if ElementSubIndex=0 then
  43.     Call MsgError("Please select an entry first")
  44.  else
  45.     sInterfaceGUID=RegEnumElement(ElementSubIndex)
  46.  
  47.     if ElementIndex=1 then 'SHOW GUID
  48.        Call MsgInformation("The GUID for the interface of the selected network connection is: " & sInterfaceGUID & chr(13) & chr(10) & "To copy this text to your clipboard: Press CTRL+C")
  49.      end if
  50.  
  51.     if ElementIndex=2 then 'ADD/EDIT GUID
  52.        sIP=GetSecondIPAdress(sInterfaceGUID)
  53.        sSub=GetSecondSubnet(sInterfaceGUID)
  54.  
  55.        sINP_IP=InputWindow("Please enter the secondary IP number for this network connection, for example 192.168.85.13",sIP,1)
  56.  
  57.        if IsEmpty(sINP_IP)=false then
  58.           if Len(sINP_IP)>0 then
  59.  
  60.              sINP_Sub=InputWindow("Please enter the secondary subnet mask for this network connection, for example 255.255.254.0",sSub,1)                  
  61.              if IsEmpty(sINP_Sub)=false then
  62.                 if Len(sINP_Sub)>0 then
  63.  
  64.                    Call SetSecondIPAdress(sInterfaceGUID,sINP_IP)
  65.                    Call SetSecondSubnet(sInterfaceGUID,sINP_Sub)
  66.                    Call InitListbox()              
  67.  
  68.  
  69.                 end if
  70.              end if
  71.           end if
  72.        end if
  73.     end if
  74.  
  75.     if ElementIndex=3 then 'REMOVE
  76.        Call SetSecondIPAdress(sInterfaceGUID,"")
  77.        Call SetSecondSubnet(sInterfaceGUID,"")
  78.  
  79.        Call MsgInformation("The secondary IP has been removed.")
  80.        Call InitListbox()              
  81.     end if
  82.  
  83.     
  84.  end if
  85.  
  86.  
  87.  
  88. End Sub
  89.  
  90.  
  91. Sub InitListbox
  92.  for i=1 to iCount
  93.      Call SetUIElement(i,"")
  94.  next
  95.  
  96.  iCount=0
  97.  iTmp=RegEnumPaths(sP1)
  98.  for i=1 to iTmp
  99.      s=RegEnumElement(i)
  100.      if left(s,1)="{" then
  101.         sRegPath=sP1 & s & sV_ConName
  102.         sName=RegReadValue(sRegPath)
  103.  
  104.         if InterfaceIsDHCP(s)=true then
  105.            iCount=iCount+1
  106.  
  107.            sIP=GetSecondIPAdress(s)
  108.            if len(sIP)=0 then 
  109.               sIP="NONE"
  110.            end if
  111.  
  112.            sSub=GetSecondSubnet(s)
  113.            if len(sSub)=0 then 
  114.               sSub="NONE"
  115.            end if
  116.               
  117.  
  118.                
  119.            Call SetUIElement(i,sName & " - (" & sIP & "/" & sSub & ")")' & s)
  120.         end if
  121.      end if
  122.  next
  123. end sub
  124.  
  125. Function InterfaceIsDHCP(InterfaceName)
  126.  r=false
  127.  
  128.  sReg=sV_TCP & InterfaceName & sV_DHCP
  129.  i=RegReadValue(sReg)
  130.  if i=1 then
  131.     r=true
  132.  else
  133.     r=false
  134.  end if
  135.  
  136.  InterfaceIsDHCP=r
  137. End Function
  138.  
  139. Function GetSecondIPAdress(InterfaceName)
  140.  sReg=sV_TCP & InterfaceName & sV_IP
  141.  
  142.  GetSecondIPAdress=GetSecondSomething(sReg)
  143. End Function
  144.  
  145. Function GetSecondSubnet(InterfaceName)
  146.  sReg=sV_TCP & InterfaceName & sV_Subnet
  147.  
  148.  GetSecondSubnet=GetSecondSomething(sReg)
  149. End Function
  150.  
  151.  
  152.  
  153. Function GetSecondSomething(RegPath)
  154.  r=""
  155.  sReg=RegPath
  156.  If RegValueExists(sReg) then
  157.     ary=RegReadValue(sReg)
  158.     if ubound(ary)>0 then
  159.        'has second IP
  160.        r=ary(1)
  161.     else
  162.        'no, not at this time
  163.        r=""
  164.     end if
  165.  end if
  166.  
  167.  GetSecondSomething=r
  168. End Function
  169.  
  170.  
  171.  
  172. Sub SetSecondIPAdress(InterfaceName,IPAddr)
  173.  sReg=sV_TCP & InterfaceName & sV_IP
  174.  
  175.  Call SetSecondSomething(sReg,IPAddr)
  176. End SUb
  177.  
  178. Sub SetSecondSubnet(InterfaceName,SubNet)
  179.  sReg=sV_TCP & InterfaceName & sV_Subnet
  180.  
  181.  Call SetSecondSomething(sReg,SubNet)
  182. End SUb
  183.  
  184.  
  185. Sub SetSecondSomething(RegPath,RegData)
  186.  Dim aryTwo()
  187.  Redim aryTwo(1)
  188.  
  189.  sReg=RegPath
  190.  ary=RegReadValue(sReg)
  191.  
  192.  if len(RegData)>0 then
  193.     aryTwo(1)=RegData
  194.  else
  195.     Redim aryTwo(0)
  196.  end if
  197.  
  198.  aryTwo(0)=ary(0)    
  199.  Call RegWriteValue(sReg,aryTwo,5)
  200. End SUb
  201.  
  202.  
  203.  
  204. Sub Plugin_Terminate 
  205. End Sub
  206.  
  207.  
  208.  
  209.